Skip to content

feat: consolidate TraceDecay V2 PR8-PR13 delivery - #707

Open
ScriptedAlchemy wants to merge 335 commits into
masterfrom
codex/tracedecay-total-redesign-plan-reopened
Open

feat: consolidate TraceDecay V2 PR8-PR13 delivery#707
ScriptedAlchemy wants to merge 335 commits into
masterfrom
codex/tracedecay-total-redesign-plan-reopened

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Replacement review for #421 after its accidental merge was reverted from master in 52a9aab. This commit has the exact tree of #421 head d4c67d4. Do not merge until explicitly authorized.

@changeset-bot

changeset-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f265e41

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Post-reopen correction pushed in a23f86a: source-neutral background reconcile no longer advances the scheduler epoch and cancel in-flight text activation; mounted hook overflow uses the explicit invalidating path. Evidence: RED reproduced 0/1, GREEN 1/1 for ordinary_background_reconcile_does_not_supersede_in_flight_text_work; cargo check --lib --locked passed.

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

if [[ -n "${{ steps.target-runtime.outputs.runtime_library }}" ]]; then
companion_args+=(
--companion
"${{ steps.target-runtime.outputs.runtime_library }}=${{ steps.target-runtime.outputs.runtime_entry_name }}"

P1 Badge Install the bundled Linux runtime beside the binary

For Linux targets, this archive now contains libonnxruntime.so.1, and the verification step succeeds only while that companion remains beside the $ORIGIN-linked executable. However, install.sh lines 80-84 extracts the archive and copies only tracedecay into the install directory before deleting the temporary directory. On systems without a compatible system ONNX Runtime, binaries installed through the advertised script will therefore fail in the dynamic loader even for --version; install the companion library beside the executable or use a layout whose runtime search path matches the installed location.


{
"type": "json",
"path": "server.json",
"jsonpath": "$.version"

P1 Badge Advance the SDK version in release PRs

The new npm publication job derives its version from the packed sdks/typescript/package.json, but this release-please list updates only the root manifest, CLI manifest, and server.json; the SDK manifest and lockfile remain fixed at 0.1.0. Starting with the release after 0.1.0, the job will either fail its different-integrity check for @tracedecay/sdk@0.1.0 or no-op for identical bytes, so no SDK version corresponding to the new stable release is published.


const overview = useQuery({
queryKey: ['delivery', 'overview'],
queryFn: () => fetchEnvelope('/api/delivery/overview', DeliveryOverviewV1Schema),

P1 Badge Scope Delivery queries to the selected project

When the scope bar selects a project other than the active project, this query keeps the same cache key and continues fetching the unprefixed active-project route. The dashboard already provides scopeKey and scopedUrl, and the backend mounts /api/projects/{id}/delivery/overview; without using them here, the page labels the selected project while showing another project's Git, CI, and release data, and switching scopes does not trigger a refetch.


let digest = RegistrationDigest {
project_id: project_id.to_string(),
canonical_root: registration_root.to_path_buf(),
git_common_dir: git_common_dir.clone(),
tracked_branches,

P1 Badge Include Git remote identity in the registration digest

When origin changes via git remote set-url without touching branch metadata or store artifacts, this digest remains identical, so the cache returns at lines 130-131 before git_remote_url is recomputed at line 147. The registry consequently retains the old remote and its alias, causing remote-based cross-project resolution to reject the new identity or continue resolving the stale one until an unrelated artifact changes; include the normalized remote in the digest.

AGENTS.md reference: AGENTS.md:L159-L161


private sendCurrentDiagnostics(): void {
const uris = vscode.languages.getDiagnostics().map(([uri]) => uri);
this.sendChangedDiagnostics(uris);

P2 Badge Batch startup diagnostics instead of dropping the tail

At activation or language-client restart, getDiagnostics() can return more than 32 document URIs, but this passes the entire list to limitAdmittedNativeDiagnosticDocuments, which permanently slices it to the first 32. Documents after that boundary are never synchronized unless they later emit a diagnostic-change or open event, leaving TraceDecay's native diagnostic state incomplete indefinitely for larger workspaces; split the startup list into bounded batches instead.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Addressed the Codex review on current HEAD:

  • Linux installer: install.sh now copies libonnxruntime.so* companions beside the binary (the $ORIGIN-linked layout the archive already ships). Covered by tests/install_script_test.sh.
  • SDK version: release-please-config.json and the beta config now bump sdks/typescript/package.json plus the lockfile versions with the product release.
  • Delivery scope: Delivery overview now goes through the existing useEnvelope / project-gateway path, so a selected project fetches /api/projects/{id}/delivery/overview and cache-keys per scope.
  • Registration digest: git_remote_url is part of the digest, so git remote set-url without other artifact changes re-registers instead of keeping the stale remote/alias.
  • Native diagnostics: startup/change lists are split into per-event batches of 32 instead of dropping the tail.

Also kept the existing hotpath gate on CommandFamily::as_profile_label (only used from the hotpath profile-label path).

ScriptedAlchemy and others added 21 commits August 25, 2026 02:37
ci(windows): raise build timeout for cold cache
…analysis

docs(extraction): map the root crate's real cycle
check-production-feature-profile.py read the repository root manifest,
which is now a virtual workspace declaring no features, so it refused
every run. It reads crates/tracedecay/Cargo.toml and fails loudly if
that manifest is missing.

Six workflow path filters still named the pre-move locations, so
plugin-validation and sdk-conformance had silently stopped triggering on
the code they guard. Repository-owned fixtures, distribution assets and
shell suites keep their root paths by design.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…plan-reopened' into codex/code-index-catchup-pipeline
…e' into codex/relocate-tracedecay-root-package

# Conflicts:
#	crates/tracedecay-query/tests/search_quality_suite/candidate_producers.rs
#	crates/tracedecay/src/daemon/code_index_scheduler.rs
ScriptedAlchemy added a commit that referenced this pull request Aug 27, 2026
chore(vendor): split remaining generated and data churn out of PR #707
Absorbs the merged churn-split PRs so the merge-base advances and the
byte-identical files (benchmark_data/, mockups/, plugin/cursor-native-extension/,
dashboard contracts schema) leave #707's visible diff. Tree is identical to the
previous branch head — no content change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A2BarcJk3iuv77aJQwHvnx
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Heads-up from the master-side CI stabilization (PRs #738/#739):

  1. Expected conflict: fix: restore green master CI (format, clippy, identity-cutover fail-closed) #738 modified src/tracedecay/lifecycle.rs, src/daemon/scheduler.rs, src/migrate/consolidate/tests.rs, and tests/storage_suite/storage_resolver_test.rs on master — files this branch deletes/moves — so GitHub now reports the PR as conflicting. Resolving the delete-side conflicts to this branch is correct: the V2 resolver (crates/tracedecay/src/tracedecay/lifecycle/identity.rs, reject_split_identity_cutover) already fails closed on populated duplicate shards, which is the contract fix: restore green master CI (format, clippy, identity-cutover fail-closed) #738 restored on master. I'll push an absorb merge after fix(automation): keep a vanished job lock contended instead of stale #739 settles unless you get there first.

  2. Port needed: fix(automation): keep a vanished job lock contended instead of stale #739 fixes a double-execution race in crates/tracedecay-agent-hosts/src/automation/scheduler.rs — a contender that loses the create_new race can observe the winner's released (vanished) lock during its staleness reads and reclaim it, running the job twice (the 2026-08-04 Windows shard-2 flake in concurrent_manual_job_triggers_do_not_double_execute). This branch's rewritten task_lock_is_reclaimable has the same exposure via its pid: None, created_at: None => true crash-debris arm if a vanished lock file yields an empty snapshot — worth checking how read_task_lock_snapshot handles NotFound and porting the guard if it doesn't already distinguish vanished from garbage.

ScriptedAlchemy and others added 9 commits August 27, 2026 07:37
Absorbs the master-side CI stabilization. Delete-side conflicts resolve to
this branch: the V2 resolver (lifecycle/identity.rs reject_split_identity_cutover)
already fails closed on populated duplicate shards, path_layout.rs is already
restructured past the clippy lint, and the automation lock code is rewritten
here (the vanished-lock reclaim guard from #739 still needs a V2 port — see
the PR #707 comment from 2026-08-27). Tree is identical to the previous
branch head.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A2BarcJk3iuv77aJQwHvnx
…plan-reopened' into codex/707-fast-forward-20260827
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants